Reports for WPF
レポート生成方法の違い
Reports for WPF を開始する > レポート生成方法の違い

C1WPFReport は、レポートを生成するために以下の2つの方法を提供します。

どちらの方法でも既存のレポートを正常に生成できますが、上記の2つの方法の主な相違点は以下の通りです。

データ連結:

インポートするとデータ連結された C1PrintDocument が生成され、データが取得されます。したがって、データが更新されるとドキュメントも更新されます。

一方、C1Report コンポーネントを使用する場合は、作成されたドキュメントで生成中に取得されたデータは既に組み込まれています。したがって、ドキュメントはデータと連結されていませんので、データを更新したときは、再びレンダリングする必要があります。

ドキュメント構造:

レポートを C1PrintDocument でインポートする場合は、フィールドおよびセクションのすべてはそれぞれRenderField クラスおよびRenderSection クラスとして示されています。レポートの定義でグループが含まれている場合は、各グループはRenderArea オブジェクトとして表されます。グループ内のヘッダとフッタはRenderSection クラス、ネストされたグループはRenderArea クラスが使用されます。

C1Report コンポーネントを使用すると、各セクションはRenderArea オブジェクトとしてレンダリングされます。フィールドのレンダリングは以下の通りです。

ページサイズ:

CustomWidth およびCustomHeight がどちらも0に設定されているレポートをプリンタがインストールされていないシステムにインポートすると、C1PrintDocument では、現在のロケールに基づいて用紙サイズが決定されます (たとえば、用紙サイズはアメリカやカナダではレター、日本やヨーロッパでは A4 に設定されます)。

同じレポートを C1Report コンポーネントで読み込んだ場合は、用紙サイズは C1.Win.C1Report.C1Report と同様に現在のロケールに基づいて用紙サイズが決定されます。

デフォルトプリンタ:

1つ以上のプリンタがインストールされているシステムでは、インポートされたレポートのデフォルトページサイズは通常の C1PrintDocument と同じロジックを使用して決定されます (プリンタを決定するには、MeasurementPrinterName プロパティが使用されます)。この動作は、デフォルトネットワークプリンタがインストールされているシステムで長い保留時間を回避するために提供されています。C1Report コンポーネントの場合は、システムのデフォルトプリンタのデフォルトページサイズが使用されます。

Import メソッドの制限:

C1Report を C1PrintDocument にインポートする際は、次の制限があります。
  1. インポートした場合は、C1Report のオブジェクトモデルを参照するまたはレポートのイベントを使用することができません。つまり、C# または VB.NET イベントハンドラに依存するレポートをインポートすると、正しくレンダリングできません。
  2. スクリプトの制限:

    • C1PrintDocument オブジェクト
      - Font プロパティは読み取り専用です。

    • Field オブジェクト
      -Section,Font, およびSubreport プロパティは読み取り専用です。

      - LineSpacing、 SubreportHasData および LinkValue プロパティはサポートされません。LinkTarget プロパティに式が含まれる場合は、評価されずに文字列として使用されます。

    • Layout オブジェクト
      - ColumnLayout プロパティはサポートされません。列は常に上から下、左から右に並べられます。

      - LabelSpacingX,、LabelSpacingY、OverlayReplacements プロパティはサポートされません。

      - ForcePageBreak を OnPrint ハンドラに使用することはできません。

  3. レポートのパラメータを入力するためのダイアログは表示されません。その代わりに、パラメータの種類によってデフォルト値が使用されます (数値には0、文字列には空文字列、日付には現在の日付が使用されます)。

  4. PageHeader および PageFooter では、データベースフィールドを使用できません。

  5. C1Report では、段組みレポートのレポートヘッダがすべての列に出力されますが、C1PrintDocument では、最初の列だけに出力されます。

  6. 左から右方向の列はサポートされません。列は常に上から下方向へ設定されます。

  7. C1Report で画像を格納しているField クラスのCanGrow プロパティが True、PictureScale プロパティが Clip に設定されている場合は、フィールドの幅と画像の幅が等しくなります。これをインポートすると、フィールドの幅は画像幅と比例的にスケールされます。

関連トピック